package zhoufu.sz.sanxiao_check.inject.components;

import android.support.annotation.NonNull;
import dagger.Component;
import zhoufu.sz.sanxiao_check.AddFiveInOneActivity;
import zhoufu.sz.sanxiao_check.MainActivity;
import zhoufu.sz.sanxiao_check.inject.PerActivity;
import zhoufu.sz.sanxiao_check.inject.modules.ActivityModule;
import zhoufu.sz.sanxiao_check.inject.modules.PresenterModule;
import zhoufu.sz.sanxiao_check.ui.ModifyPasswordActivity;
import zhoufu.sz.sanxiao_check.ui.SearchActivity;
import zhoufu.sz.sanxiao_check.ui.StreetDetailsActivity;
import zhoufu.sz.sanxiao_check.ui.basic.AddEmptyPlaceActivity;
import zhoufu.sz.sanxiao_check.ui.basic.BasicItem2Activity;
import zhoufu.sz.sanxiao_check.ui.basic.BasicItem3Activity;
import zhoufu.sz.sanxiao_check.ui.basic.BasicItem4Activity;
import zhoufu.sz.sanxiao_check.ui.basic.BasicMsgItem1Activity;
import zhoufu.sz.sanxiao_check.ui.basic.BasicMsgItem2Activity;
import zhoufu.sz.sanxiao_check.ui.basic.NewBasicItem4Activity;
import zhoufu.sz.sanxiao_check.ui.basic.PlaceChangeActivity;
import zhoufu.sz.sanxiao_check.ui.check.CheckHistoryListActivity;
import zhoufu.sz.sanxiao_check.ui.check.CheckItemFragment;
import zhoufu.sz.sanxiao_check.ui.check.CheckMainActivity;
import zhoufu.sz.sanxiao_check.ui.check.PrintActivity;
import zhoufu.sz.sanxiao_check.ui.fragment.FireSafetyFragment;
import zhoufu.sz.sanxiao_check.ui.fragment.LoginFragment;
import zhoufu.sz.sanxiao_check.ui.fragment.ModifyActionFragment;
import zhoufu.sz.sanxiao_check.ui.fragment.StreetListFragment;
import zhoufu.sz.sanxiao_check.ui.train.AddTrainActivity;
import zhoufu.sz.sanxiao_check.ui.train.TrainActivity;
import zhoufu.sz.sanxiao_check.ui.train.TrainListFragment;

/**
 * Created by h on 2016/6/19.
 */

@PerActivity
@Component(dependencies = AppComponent.class, modules = { ActivityModule.class,
                                                          PresenterModule.class
})
public interface LoginComponet extends android.databinding.DataBindingComponent
{
    void inject(LoginFragment fragment);

    void inject(ModifyPasswordActivity activity);

    void inject(MainActivity activity);

    void inject(StreetListFragment fragment);

    void inject(StreetDetailsActivity activity);

    void inject(BasicMsgItem1Activity activity);

    void inject(BasicMsgItem2Activity activity);

    void inject(BasicItem2Activity activity);

    void inject(BasicItem3Activity activity);

    void inject(BasicItem4Activity activity);

    void inject(NewBasicItem4Activity activity);

    void inject(SearchActivity activity);

    void inject(PlaceChangeActivity activity);

    void inject(CheckMainActivity activity);

    void inject(CheckItemFragment fragment);

    void inject(TrainActivity activity);

    void inject(TrainListFragment fragment);

    void inject(AddTrainActivity activity);

    void inject(FireSafetyFragment fireSafetyFragment);

    void inject(ModifyActionFragment modifyActionFragment);

    void inject(PrintActivity activity);

    void inject(AddEmptyPlaceActivity activity);

    void inject(AddFiveInOneActivity addFiveInOneActivity);

    void inject(CheckHistoryListActivity checkHistoryListActivity);

    class Instance
    {
        private static LoginComponet _appComponent;

        public static void init(@NonNull LoginComponet component)
        {
            _appComponent = component;
        }

        public static LoginComponet get()
        {
            return _appComponent;
        }
    }
}
